package maple.thelittleredbook.logging.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import maple.thelittleredbook.logging.entity.SysLog;

/**
 * 系统日志Mapper接口
 */
@Mapper
public interface SysLogMapper extends BaseMapper<SysLog> {

    /**
     * 分页查询系统日志
     * 对应XML文件中的selectPageWithFilters
     *
     * @param page 分页参数
     * @param userId 用户ID，可选
     * @param requestMethod 请求方法（GET、POST等），可选
     * @param operation 操作类型（模糊匹配），可选
     * @param errorOnly 是否只查询错误请求，可选
     * @return 分页系统日志记录
     */
    IPage<SysLog> selectPageWithFilters(Page<SysLog> page,
                                        @Param("userId") Long userId,
                                        @Param("requestMethod") String requestMethod,
                                        @Param("operation") String operation,
                                        @Param("errorOnly") Boolean errorOnly);
}